<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // some  : ||  一true则true
        // -----------原生方法------------------------------------------
        var arr = [true, false, true, true];
        var res = arr.some(function(item,key,arr){
            console.log(item,key,arr);
            return item;
        })
        console.log(res);

        // -----------用for底层来写------------------------------------------

        function someMy(arr,fn){
            for(var i = 0 ; i < arr.length ; i++){
               if(fn(arr[i], i, arr)) return true  // return在函数内就不是跳出本次循环 而是结束函数
            }
            return false;
        }
        var res = someMy(arr,function(item,index,arr){
            return item
        })
        console.log(res);

        // -----------挂在到原型上------------------------------------------

        Array.prototype.someMy = function(fn){
            for(var i = 0 ; i < this.length ; i++){
                if(fn(this[i], i, this)) return true  // return在函数内就不是跳出本次循环 而是结束函数
            }
            return false;
        }

        var res= arr.someMy(function(item,index,arr){
            return item
        })
        console.log(res);
    </script>
</body>
</html>